<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui"
                template="./../../resources/templates/baseTemplate.xhtml">

    <ui:define name="content">
        <f:view id="vRoot">
            <p:fieldset legend="Gerenciar tipo de Recurso">
                <h:form id="frmTiposRecurso">
                    <!-- Exibição de mensagens gerais -->
                    <p:growl  id="gMessages" globalOnly="true" sticky="false"/>

                    <!-- Exibição da lista de tipos de públicos -->
                    <p:dataTable id="dtTiposRecurso"
                                 value="#{tipoRecursoBean.tiposRecurso}"
                                 paginator="true" rows="5"
                                 rowsPerPageTemplate="5,10"
                                 paginatorPosition="bottom"
                                 paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                                 var="atual">

                        <f:facet name="header">
                            <p:commandButton id="cbViewNovo" value="Novo" type="button" styleClass="cbViewNovo" onclick="dlgNovo.show();" />
                        </f:facet>

                        <!-- Colunas de edição e exclusão -->
                        <p:column>
                            <f:facet name="header">
                                <h:outputLabel value="Editar"/>
                            </f:facet>
                            <p:commandButton id="cbViewEditar"  
                                             image="ui-icon-pencil" 
                                             title="Editar"
                                             update=":frmEditar:pEditarTipoRecurso"
                                             oncomplete="dlgEditar.show();">
                                <f:setPropertyActionListener value="#{atual}" target="#{tipoRecursoBean.tipoRecursoSelecionado}" />
                            </p:commandButton>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputLabel value="Excluir"/>
                            </f:facet>
                            <p:commandButton id="cbViewExcluir" onclick="dlgExcluir.show();" 
                                             icon="ui-icon-close" title="Excluir">
                                <f:setPropertyActionListener value="#{atual}" 
                                                             target="#{tipoRecursoBean.tipoRecursoSelecionado}" />
                            </p:commandButton> 
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                Nome
                            </f:facet>
                            <h:outputLabel id="olViewTipoRecursoNome" value="#{atual.nmeTipoRecurso}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                Descrição
                            </f:facet>
                            <h:outputLabel id="olViewTipoRecursoDesc" value="#{atual.dscTipoRecurso}"/>
                        </p:column>
                    </p:dataTable>
                </h:form>

                <!-- Caixa de diálogo de inclusão -->
                <p:dialog id="dlgNovoTipoRecurso" widgetVar="dlgNovo" modal="true" header="Novo tipo de Recurso"
                          resizable="false">
                    <h:form id="frmNovo">
                        <p:panel id="pNovoTipoRecurso">
                            <p:messages id="mNovoMessages" redisplay="false" />
                            <p:panelGrid columns="2">
                                <p:outputLabel id="olNovoNomeTipoRecurso" value="Nome:" for="itNovoNomeTipoRecurso"/>
                                <p:inputText id="itNovoNomeTipoRecurso" value="#{tipoRecursoBean.nome}" required="true"
                                             requiredMessage="Digite o nome do tipo de recurso."/>

                                <p:outputLabel id="olNovoDescricaoTipoRecurso" for="itNovoDescricaoTipoRecurso" value="Descrição:"/>
                                <p:inputTextarea rows="6" cols="33" id="itNovoDescricaoTipoRecurso" value="#{tipoRecursoBean.descricao}" required="true"
                                             requiredMessage="Digite a descrição do tipo de recurso."/>
                                <p:commandButton value="Cancelar" immediate="true" onclick="dlgNovo.hide()"/>
                                <p:commandButton id="cbNovoSalvar" value="Salvar" 
                                                 actionListener="#{tipoRecursoBean.cadastrarTipoRecurso}"
                                                 oncomplete="handleSalvo(xhr, status, args);" 
                                                 update=":frmTiposRecurso :frmNovo"
                                                 ajax="true"/>
                            </p:panelGrid>
                        </p:panel>
                    </h:form>
                </p:dialog>

                <!-- Caixa de diálogo de exclusão -->
                <p:confirmDialog id="dialogoExcluir" message="Deseja realmente excluir?"
                                 header="Excluir tipo de recurso" severity="alert" 
                                 widgetVar="dlgExcluir">
                    <h:form id="frmExcluir">
                        <p:commandButton id="cbExcluirCancelar" value="Cancelar" onclick="dlgExcluir.hide()" type="button" /> 
                        <p:commandButton id="cbExcluirContinuar" value="Continuar"
                                         update=":frmTiposRecurso" 
                                         oncomplete="dlgExcluir.hide()"
                                         actionListener="#{tipoRecursoBean.excluirTipoRecurso}"/>
                    </h:form>
                </p:confirmDialog>
                <!-- Caixa de diálogo de edição -->
                <p:dialog id="dialogoEditar" widgetVar="dlgEditar" header="Editar tipo de recurso"
                          resizable="false" modal="true">
                    <h:form id="frmEditar">
                        <p:panel id="pEditarTipoRecurso">
                            <p:messages id="mEditarMessages" redisplay="false" />
                            <p:panelGrid columns="2">
                                <p:outputLabel id="olEditarNomeTipoRecurso" value="Nome:" for="itEditarNomeTipoRecurso"/>
                                <p:inputText id="itEditarNomeTipoRecurso" value="#{tipoRecursoBean.tipoRecursoSelecionado.nmeTipoRecurso}" required="true"
                                             requiredMessage="Digite o nome do tipo de recurso."/>

                                <p:outputLabel id="olEditarDescricaoTipoRecurso" for="itEditarDescricaoTipoRecurso" value="Descrição:"/>
                                <p:inputTextarea rows="6" cols="33" id="itEditarDescricaoTipoRecurso" value="#{tipoRecursoBean.tipoRecursoSelecionado.dscTipoRecurso}" required="true"
                                             requiredMessage="Digite a descrição do tipo de recurso."/>
                                <p:commandButton value="Cancelar" immediate="true" onclick="dlgEditar.hide()"/>
                                <p:commandButton id="cbEditarSalvar" value="Salvar" 
                                                 actionListener="#{tipoRecursoBean.alterarTipoRecurso}"
                                                 oncomplete="handleEditar(xhr, status, args);" 
                                                 update=":frmTiposRecurso :frmEditar"/>
                            </p:panelGrid>
                        </p:panel>
                    </h:form>
                </p:dialog>
            </p:fieldset>
            <script type="text/javascript">
                function handleSalvo(xhr, status, args){
                    if(args.tipoRecursoSalvo){
                        dlgNovo.hide();
                    }
                }
                
                function handleEditar(xhr, status, args){
                    if(args.tipoRecursoEditado){
                        dlgEditar.hide();
                    }
                }
            </script>
        </f:view>
    </ui:define>

</ui:composition>
